const { defineConfig } = require('@vue/cli-service')

// webpack.config.js
const AutoImport = require('unplugin-auto-import/webpack')
const Components = require('unplugin-vue-components/webpack')
const { ElementPlusResolver } = require('unplugin-vue-components/resolvers')


module.exports = defineConfig({
  transpileDependencies: true,
  lintOnSave: false, // 关闭 eslint
  publicPath: "./", // 公共路径，这样设置，打包后的index.html才可以打开
  productionSourceMap: false, // 打包后不要映射文件
  devServer: {
    host: "localhost", // 解决自动打开0.0.0.0
    port: 9090, // 端口
    open: false, // 编译完成，自己打开浏览器
    proxy: { // 配置代理服务器
      '/trainT': {
        target: 'http://localhost:8080',
        ws: true,
        changeOrigin: true
      }
    }
  },
  pages: {
    index: {
      entry: 'src/main.js',// page 的入口
      template: 'public/index.html',// 模板来源
      // 当使用 title 选项时，
      // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
      title: '火车购票系统',
    },
  },
  configureWebpack: {
    plugins: [
      AutoImport({
        resolvers: [ElementPlusResolver()],
      }),
      Components({
        resolvers: [ElementPlusResolver()],
      }),
    ],
    resolve: { extensions: [".ts", ".tsx", ".js", ".json"] },
    module: {
      rules: [
        {
          test: /\.tsx?$/,
          loader: 'ts-loader',
          exclude: /node_modules/,
          options: {
            appendTsSuffixTo: [/\.vue$/],
          }
        }
      ]
    }
  },
})
